import axios from "axios";
import { showLoading, hideLoading } from "./loading";
import qs from 'qs'
// import notification from 'ant-design-vue/es/notification'
// import qs  from "qs"

// 创建 axios 实例
const service = axios.create({
  baseURL: "http://127.0.0.1:8081", // api base_url
  timeout: 6000 // 请求超时时间
});

const err = error => {
  // if (error.response) {
  //   const data = error.response.data
  //   const token = Vue.ls.get(ACCESS_TOKEN)
  //   if (error.response.status === 403) {
  //     // notification.error({
  //     //   message: 'Forbidden',
  //     //   description: data.message
  //     // })
  //   }
  //   if (error.response.status === 401 && !(data.result && data.result.isLogin)) {
  //     // notification.error({
  //     //   message: 'Unauthorized',
  //     //   description: 'Authorization verification failed'
  //     // })
  //     // if (token) {
  //     //   store.dispatch('Logout').then(() => {
  //     //     setTimeout(() => {
  //     //       window.location.reload()
  //     //     }, 1500)
  //     //   })
  //     // }
  //   }
  // }
  return Promise.reject(error);
};

//请求拦截，添加token值
service.interceptors.request.use(config => {
  const token = localStorage.getItem("token");
  if (token) {
    config.headers["token"] = token; // 让每个请求携带自定义 token 请根据实际情况自行修改
  } else {
    console.log("无token值");
  }
  config.headers['Access-Control-Allow-Origin']='*'
  return config;
}, err);

// 响应拦截
service.interceptors.response.use(response => {
  return response;
}, err);

//封装get方法
export function get(url, parms) {
  //当参数中有loading字段时,打开全局loading
  if (parms!=null&&parms.ladding) {
    showLoading();
  }
  return new Promise((resolve, reject) => {
    service
      .get(url, { params: parms })
      .then(data => {
        hideLoading();
        console.log(data);
        resolve(data.data);
      })
      .catch(err => {
        hideLoading();
        reject(err);
      });
  });
}
//封装POST方法
export function post(url, parms) {
  return new Promise((resolve, reject) => {
    service
      .post(
        url,
        qs.stringify({
          ...parms
        })
      )
      .then(data => {
        hideLoading();
        console.log(data);
        resolve(data.data);
      }
      )
      .catch(err => {
        hideLoading();
        reject(err);
      });
  });
}
